
<?php
require_once '../application/forms/CadastrarSsr.php';
require_once '../application/models/Ssr.php';
class SsrController extends Zend_Controller_Action {
	
	public function init() {
		if ( !Zend_Auth::getInstance()->hasIdentity()) {
            return $this->_helper->redirector->goToRoute( array('controller' => 'auth'), null, true);
            
        }
	}
	
	public function indexAction() {
		// action body
	}
	
	public function cadastrarAction() {
		if (isset ( $_REQUEST ['acao'] ))
			$acao = $_REQUEST ['acao'];
		if (isset ( $_REQUEST ['alelos'] ))
			$alelos = $_REQUEST ['alelos'];
		else
			$alelos = 0;
		$form = new Application_Form_CadastrarSsr ( $alelos );
		
		$this->view->form = $form;
		if ($this->getRequest ()->isPost ()) {
			$data = $this->getRequest ()->getPost ();
			//Formul�rio corretamente preenchido?
			if ($form->isValid ( $data )) {
				
				//Variaveis do form
				$ssr = $form->getValue ( 'ssr' );
				$est = $form->getValue ( 'est' );
				$tipo = $form->getValue ( 'tipo' );
				$repeat = $form->getValue ( 'repeat' );
				$arquivo = $form->getValue ( 'arquivo' );
				$tm = $form->getValue ( 'tm' );
				$alelos = $form->getValue ( 'alelos' );
				$primer_r = $form->getValue ( 'primer_r' );
				$primer_f = $form->getValue ( 'primer_f' );
				$fasta = $primer_r = $form->getValue ( 'fasta' );
				
				//array de alelos
				$alelosNovos = $form->retornaAlelos ( $form, $alelos );
				
				//verificacao de polimorfismo
				$polimorfico = "Nao";
				if ($alelos > 1)
					$polimorfico = "Sim";
					//instancia de um marcador            
				$marcador = new Application_Model_Ssr ( );
				$acesso = new Application_Model_Acesso ( );
				$alelo = new Application_Model_Alelo ( );
				
				echo "<br>inserindo marcador..<br>";
				$marcador_id = $marcador->inserir ( $ssr, $est, $tipo, $repeat, $arquivo, $tm, $alelos, $primer_r, $primer_f, $fasta, $polimorfico );
				echo "<br>$marcador_id<br>marcador inserido<br>";
				// instancia de acesso
				echo "criando tabela de acessos..<br>";
				
				$acesso->criarTabelaDeAcessos ( $ssr, $alelosNovos );
				echo "tabela criada";
				
				//tabela de alelos
				

				$alelo->inserirAlelos ( $alelosNovos, $marcador_id );
				//$marcador->criarTabelaDeAcessos($ssr, $alelos, $form);
				//$marcador->inserir($ssr, $est, $tipo, $repeat, $arquivo, $tm, $alelos, $primer_r, $primer_f, $fasta);
				echo "inserido";
				
			//$dbAdapter = Zend_Db_Table::getDefaultAdapter();
			

			//Verifica se o login foi efetuado com sucesso
			

			} else {
				echo "Dados inválidos. Por favor verifique se os campos foram preenchido de forma correta";
				//Formul�rio preenchido de forma incorreta
				$form->populate ( $data );
			}
		
		}
	
	}
	
	public function listarAction() {
		
		// action body
		$ssr = new Application_Model_Ssr ( );
		$rows = $ssr->listar ();
		$linhas = $ssr->linhas ();
		//views
		$this->view->funcoes = $ssr;
		$this->view->clientes = $rows;
		$this->view->linhas = $linhas;
	
	}
	
	public function atualizarAction() {
		if(isset($_REQUEST['id']))
			$marcador_id = $_REQUEST['id'];
		$nomeAlelosA = null;
		$id = 13;
		// pega o adaptador padrão
		$db = Zend_Db_Table::getDefaultAdapter ();
		// pega os dados da linha a partir de um id
		$dados = $db->fetchRow ( "select * from ssr where id=$marcador_id" );
		
		$alelos = $db->fetchAll ( "select * from alelo where marcador_id=$marcador_id" );
		foreach ($alelos as $alelo)
			$nomeAlelosA[] = $alelo['alelo'];
		// dados antigos
		$ssrA = $dados ['marcador'];
		$estA = $dados [ 'est'];
		$tipoA = $dados [ 'tipo'];
		$repeatA = $dados ['repeat'];
		$arquivoA = $dados ['arquivo'];
		$tmA = $dados ['tm'];
		$alelosA = $dados ['alelos'];
		$primer_rA = $dados ['primer_r'];
		$primer_fA = $dados ['primer_f'];
		$fastaA = $dados ['fasta'];
		$dadosAntigos = array('marcador'=>$ssrA, 'est'=>$estA, 'tipo'=>$tipoA, 'repeat'=>$repeatA,
		'arquivo'=>$arquivoA, 'tm'=>$tmA, 'alelos'=>$alelosA, 'primer_r'=>$primer_rA,
		'primer_f'=>$primer_fA, 'fasta'=>$fastaA
		);
		if(isset($_REQUEST['alelos']))
			$numAlelos = $_REQUEST['alelos'];
		else $numAlelos = $alelosA;
		$form = new Application_Form_CadastrarSsr ( $numAlelos, $nomeAlelosA, $dadosAntigos, "atualizar?id=$marcador_id");
		$this->view->form = $form;
		
		if ($this->getRequest ()->isPost ()) {
			$data = $this->getRequest ()->getPost ();
			//Formul�rio corretamente preenchido?
			if ($form->isValid ( $data )) {
				
				//Variaveis do form
				

				$ssr = $form->getValue ( 'ssr' );
				$est = $form->getValue ( 'est' );
				$tipo = $form->getValue ( 'tipo' );
				$repeat = $form->getValue ( 'repeat' );
				$arquivo = $form->getValue ( 'arquivo' );
				$tm = $form->getValue ( 'tm' );
				$alelos = $form->getValue ( 'alelos' );
				$primer_r = $form->getValue ( 'primer_r' );
				$primer_f = $form->getValue ( 'primer_f' );
				$fasta = $form->getValue ( 'fasta' );
				$alelosNovos = $form->retornaAlelos ( $form, $alelos );
				//instancia de um marcador
				$marcador = new Application_Model_Ssr ( );
				$marcador->update ( array ('marcador' => $ssr, 'est' => $est, 'tipo' => $tipo, 'repeat' => $repeat, 'arquivo' => $arquivo, 'tm' => $tm, 'alelos' => $alelos, 'primer_r' => $primer_r, 'primer_f' => $primer_f, 'fasta' => $fasta ), "id=$marcador_id" );
				$insAlelo = new Application_Model_Alelo();
				$insAlelo->atualizarTabela($marcador_id, $alelosNovos);
				$instAcesso = new Application_Model_Acesso();
				$instAcesso->atualizaTabelaDeAcessos($ssrA, $ssr, $alelosNovos);
				echo "inserido";
				
				
			//$dbAdapter = Zend_Db_Table::getDefaultAdapter();
			

			//Verifica se o login foi efetuado com sucesso
			

			} else {
				echo "n�o � e � �";
				echo "n�ojhjh cadastrado";
				//Formul�rio preenchido de forma incorreta
				$form->populate ( $data );
			}
		
		}
	
	}
	
	public function testeAction() {
		echo "teste";
		$acesso = new Application_Model_Acesso();
		echo $acesso->nomeColunasQuery('junior');

	}

}

 

